Restore QtCore ABI compatibility with binaries built with g++ 4.3 on armel Once Qt is rebuilt with g++ 4.4, it becomes ABI incompatible with binaries built with g++ 4.3 on armel. That's because g++ 4.4 mangles va_list differently on armel. As a result, affected symbols are those which have va_list type in their argument list. Qt exports 2 such symbols: . qvsnprintf(char *str, size_t n, const char *fmt, va_list ap); QString &QString::vsprintf(const char* cformat, va_list ap); . The patch uses .symver assembler directive to add aliases for the symbols above. Those aliases are mangled in the same way as g++ 4.3 would mangle original symbols.
Permit loading plugins built with future major Qt releases (4.x)
This check is too paranoid for us because it prevents from using symbol files
in full potential. Fine-grained package level dependencies should ensure that
the required version of the Qt Library is installed which might not necessarily
be the latest Qt 4.x the plugin was built against because the plugin actually
did not use any of new symbols in the Qt Library.
However, removal of this check might still increase likelihood of crashes when:
1) loading a new incompatible version of plugin into a running process still
using an old Qt Library. This might happen right after upgrade;
2) user tries to load incompatible non-packaged plugin;
but it's an acceptable compromise. Here we trade more bullet proof protection
from rare user faults or weird system misconfigurations for more flexibility,
installability and expand of forward binary compatibility beyond the same Qt
4.x whenever possible.
Gbp-Pq: Name 23_permit_plugins_built_with_future_qt.diff
set sane timestamps when generating header symlinks for non-existing headers
This is particularly important for QtCore/QtConfig symlink because typically
qconfig.h does not exist when syncqt is run by ./configure. So instead of
assigning a modification timestamp equal to the epoch (00:00 January 1, 1970
GMT.) for the symlink, just use current time().
Gbp-Pq: Name 02_syncqt_sane_timestamp_for_nonexisting_headers.diff
Robert Knight [Sun, 20 Apr 2008 14:28:31 +0000 (16:28 +0200)]
When tabs are inserted or removed in a QTabBar, QTabBarPrivate::refresh() is called to update the layout. If the tabbar widget is hidden, this just sets a boolean variable (layoutDirty) and returns, so the parent widget's layout is not notified about the possible geometry change.
Prior to Qt 4.4 this was not a problem because the geometry was
recalculated in QTabBar::sizeHint() if the layoutDirty variable was
set. In Qt 4.4 however the layout caches size hint information in
QWidgetItemV2. Since the cache information is not invalidated, the
layout may end up using out-of-date size hint information to compute
the widget size.
If the QTabBar is empty when QTabBar::sizeHint() is called, it will
return a size with a height of 0, which will be kept in the cache and
so the tab bar will never be shown.
This patch fixes the problem by calling updateGeometry() whenever the
tab bar's layout is refreshed.
qt-bugs@ issue : 208185
Trolltech task ID : 208349
bugs.kde.org number : 159014
Gbp-Pq: Name 0225-invalidate-tabbar-geometry-on-refresh.patch
Lubos Lunak [Tue, 2 Oct 2007 14:08:32 +0000 (16:08 +0200)]
This patch makes override-redirect windows (popup menu, dropdown menu, tooltip, combobox, etc.) also have more window properties like WM_CLASS, so they can be used when compositing.
This patch is known to not be the most correct way
to implement them, as it seems to be possible to do it in a faster way,
but should work non the less until we can provide something better.
Specifically when reading files with broken cmap tables, we could
get some undeterministic results. We handle this more gracefully
by verifying that the offsets are sane and bailing out early if not.
This replaces the current pattern throughout the font engine for
consistency.
Lars Knoll [Thu, 24 Apr 2014 13:33:27 +0000 (15:33 +0200)]
Don't crash on broken GIF images
Broken GIF images could set invalid width and height
values inside the image, leading to Qt creating a null
QImage for it. In that case we need to abort decoding
the image and return an error.
Initial patch by Rich Moore.
Backport of Id82a4036f478bd6e49c402d6598f57e7e5bb5e1e from Qt 5
Owen W. Taylor [Mon, 17 Oct 2011 21:27:43 +0000 (17:27 -0400)]
Fix logic for figuring out what ConfigureNotify positions can be trusted
When reading ahead in the queue for ConfigureNotify events, it's necessary
to look for intermediate ReparentNotify events as well, since they will
determine whether the position in the event can be trusted or not.
from QT_USE_DRAG_DISTANCE environment variable.
See also http://bugreports.qt.nokia.com/browse/QTBUG-12594
Author: Joonas Tanskanen <joonas.tanskanen@sasken.com>
Gbp-Pq: Name Add_support_for_QT_USE_DRAG_DISTANCE_env_var.patch